/*
* Using the GLM 0.9.8 library
*/
#pragma once
#define GLM_MESSAGES  // display some info at build time
#define GLM_FORCE_AVX
#include <glm/glm.hpp>
#include <glm/gtc/quaternion.hpp>
#include <glm/gtx/quaternion.hpp>

#include "config.h"  // user defined configs, including precision

namespace occ {
#if USE_FP64
	using occFloat = double;
	using vec3f = glm::dvec3;
	using vec4f = glm::dvec4;
	using mat4f = glm::dmat4;
	using quatf = glm::dquat;
#else
	using occFloat = float;
	using vec3f = glm::fvec3;
	using vec4f = glm::fvec4;
	using mat4f = glm::fmat4;
	using quatf = glm::fquat;
#endif

#define IN const
#define OUT
}